package com.trace.demo.repository;

import com.trace.demo.entity.TodoItem;
import com.trace.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 待办事项存储库
 */
@Repository
public interface TodoItemRepository extends JpaRepository<TodoItem, Long> {

    /**
     * 根据用户ID查找待办事项
     * @param userId 用户ID
     * @return 待办事项列表
     */
    List<TodoItem> findByUserId(Long userId);

    /**
     * 查找特定用户的超时未完成待办事项
     * @param userId 用户ID
     * @param dueDate 截止日期
     * @return 超时未完成待办事项列表
     */
    List<TodoItem> findByUserIdAndDueDateBeforeAndCompletedFalse(Long userId, LocalDateTime dueDate);

    /**
     * 统计特定截止日期前未完成的待办事项
     */
    @Query("SELECT COUNT(t) FROM TodoItem t WHERE t.dueDate < ?1 AND t.completed = false")
    long countOverdueTodoItems(LocalDateTime date);

}
